package de.servicezombie.lang;

import java.util.List;

public interface Configuration {

	<T> List<T> getList(String key, Class<T> requiredType) throws BadConfigurationException;

	<T> List<T> getOptionalList(String key, List<T> defaultValue, Class<T> requiredType);

	String getString(String key) throws BadConfigurationException;

	String getOptionalString(String key, String defaultValue);

	int getInt(String key) throws BadConfigurationException;

	int getOptionalInt(String key, int defaultValue);

	boolean getBool(String key) throws BadConfigurationException;

	boolean getOptionalBool(String key, boolean defaultValue);
	
	String[] getStringArray(String key);

}
